package CapaDatos;

import java.util.GregorianCalendar;

public class Fecha extends GregorianCalendar
{
    public Fecha ()
    {
        super();
    }

    public Fecha (String fechaCadena)
    {
        String[] fecha = fechaCadena.split("/");
        this.clear();
        this.set
                (
                    Integer.valueOf(fecha[2]),
                    Integer.valueOf(fecha[1]) - 1,
                    Integer.valueOf(fecha[0])
                );
        this.complete();
    }

    // <editor-fold defaultstate="collapsed" desc="equals, hashCode y toString">
    @Override
    public boolean equals(Object objeto) {
        if (!(objeto instanceof Fecha))
            return false;

        Fecha fecha = (Fecha) objeto;

        if (this.toString().equals(fecha.toString()))
            return true;

        return false;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        String fecha = this.toString();
        hash += (fecha != null ? fecha.hashCode() : 0);

        return hash;
    }

    @Override public String toString() {
        if (! (this.isSet(Fecha.DATE) && this.isSet(Fecha.MONTH) && this.isSet(Fecha.YEAR)))
            return null;

        String[] fecha =
        {
            String.valueOf(this.get(Fecha.DATE)),
            String.valueOf(this.get(Fecha.MONTH) + 1),
            String.valueOf(this.get(Fecha.YEAR))
        };

        if (fecha[0].length() < 2)
            fecha[0] = "0" + fecha[0];
        if (fecha[1].length() < 2)
            fecha[1] = "0" + fecha[1];

        return (fecha[0] + "/" + fecha[1] + "/" + fecha[2]);
    }
    // </editor-fold>
}
